Data clustering operates to group or partition a plurality of data points into a predetermined number of clusters or categories based on one or more attributes or features. The efficiency of a clustering algorithm depends on several factors. First, the computation resources required to implement the clustering algorithm is an important consideration. It is generally desirable to reduce the time needed to generate results (often referred to as the convergence rate) and also reduce the amount of computer resources needed to implement the clustering algorithm. Furthermore, as explained in greater detail hereinafter, the prior art methods do not have a very efficient convergence rate.
Second, the quality of the generated clusters or categories (often referred to as the convergence quality) is also another important consideration. Ideally, there is one center point for each category or cluster. Unfortunately, the prior art methods often generate clusters or categories with more than one center. These centers are referred to as “trapped centers” (i.e., these centers are trapped by the local data, but actually belong to another cluster or category). There are many practical and useful applications that can utilize data clustering to improve results. Consequently, there is much interest in developing clustering algorithms or methods that efficiently and effectively cluster data.